// 给你一个整数数组 prices ，其中 prices[i] 表示某支股票第 i 天的价格。

// 在每一天，你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买，然后在 同一天 出售。

// 返回 你能获得的 最大 利润 。

function maxProfit(prices) {
    // dp[i][0] 表示当前没有股票的最大收益
    // dp[i][1] 表示当前有股票的最大收益
    let n = prices.length
    let dp = new Array(n).fill([])
    dp[0][0] = 0
    dp[0][1] = -prices[0]
    for(var i=1;i<n;i++) {
        //当前没有持有股票有两种形式，一种是之前就没有，一种是之前有股票，在这天卖掉了，所以需要加上卖掉的钱
        dp[i][0] = Math.max(dp[i-1][0],dp[i-1][1] + prices[i])
        // 当前持有股票有两种形式，一种是之前就有，一种是之前没有，这天买进了，所以需要减去卖掉的钱
        dp[i][1] = Math.max(dp[i-1][1],dp[i-1][0] - prices[i])
    }
    return dp[n-1][0]
}